In this document, we will do some preliminary analyses of an IBIS dataset consisting of information about Proband siblings (siblings of children with Autism). This data includes background demographic information (sex of sibling and Proband, parent information, etc.), various behavioral measures (ADOS, ADIR, CSBS, etc.) and as well brain structure information (TCV, TSA, EACSF, etc.) across various time points. Siblings were observed at 6, 12, and 24 months of age. The preliminary analyses will consist of
Summary statistics table for all variables
Data visualizations of group differences by diagnosis of sibling
Measures/visualizations of associations between SCQ and brain measures.
We are also interested in the following, more specified brain measures:
Fractional Anisotropy (FA) of major white matter tracts: CCbody, CCGenu, CCSplenium
Amygdala volumes (Amyg)
Brain Thickness (Axis_Mean_Thickness)
Surface Area in selected regions of interest (ROIs):
ROI08 = Right Medial Frontal Gyrus
ROI41 = Left Cuneus Gyrus
ROI42 = Right Cuneus Gyrus
ROI44 = Right Lingual Gyrus
ROI47 = Left Middle Occipital Gyrus
ROI48 = Right Middle Occipital Gyrus
ROI77 = Left Inferior Temporal Gyrus
ROI01 = Left Precentral Gyrus
ROI02 = Right Precentral Gyrus
ROI59 = Left Supramarginal Gyrus
ROI60 = Right Supramarginal Gyrus
First, we read in the data as a XLSX file using the function read_excel(), which requires the readxl package (see above code). Due to the large number of variables in the dataset, we create another dataset in R with a subset of variables which are of interest for a table of summary statistics. We will also create a form of this dataset in long format.
Here we create separate summary statistics tables for
Here we create the following plots to provide a visual overview of the variables of interest (Proband SCQ and brain structure):
both sets by visit and diagnosis.
Here we consider fitting linear regression models to estimate the assoications between various brain measures (EACSF, TCV, TSA, etc.) and Proband SCQ Total Score. We model different associations for each diagnosis group using an interaction term between diagnosis and diagnosis. The models can be summarized as follows:
\(Y=\beta_0+\beta_1*Diagnosis+\beta_2*\mbox{SCQ_Proband_Score}+\beta_3*\mbox{SCQ_Proband_Score}*Diagnosis\)
where \(Y\) is one of the brain measures. First, we do not control for possible confounding variables. For each model, we print the regression parameter estimates/p-values and two diagnostic plots (fitted values by residuals and residuals QQ plot). Due to the longitudinal nature of the data, we run separate analyses for each time pont. [1] “Visit = V06” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V06” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V12” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score” [1] “Visit = V24” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score”
Now, we conduct the same linear regression analysis as was done before but also include a set of possible confouding variables for eahch model. The variables are: study site for infant, age of the infant at MRI scan, and sex of infant. We print the same output as in the previous linear regrsssion analysis. [1] “Visit = V06” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = EACSF ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = TCV ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = TSA ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = CCbody ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = CCGenu ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = CCSplenium ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI01 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI02 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI08 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI41 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI42 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI44 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI47 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI48 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI59 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI60 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V06” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V12” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex” [1] “Visit = V24” [1] “Model = ROI77 ~ RiskGroup + SCQ_Pro_Score + RiskGroup * SCQ_Pro_Score + Site + AgeMRI + Cand_Sex”
Using the linear regression results we can compute effect sizes for these associations. We consider two effect size definitions.
We calculate these at 6 month, 12 month, and 24 month visits, for only HR-ASD infants.
## [1] "Visit = V06"
## [1] "Model = EACSF ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = EACSF ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = EACSF ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = TCV ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = TCV ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = TCV ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = TSA ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = TSA ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = TSA ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = CCbody ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = CCbody ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = CCbody ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = CCGenu ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = CCGenu ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = CCGenu ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = CCSplenium ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = CCSplenium ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = CCSplenium ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI01 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI01 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI01 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI02 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI02 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI02 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI08 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI08 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI08 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI41 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI41 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI41 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI42 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI42 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI42 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI44 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI44 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI44 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI47 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI47 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI47 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI48 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI48 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI48 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI59 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI59 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI59 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI60 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI60 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI60 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V06"
## [1] "Model = ROI77 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V12"
## [1] "Model = ROI77 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
## [1] "Visit = V24"
## [1] "Model = ROI77 ~ Pro_SCQgrp + Cand_Sex + AgeMRI"
Now we consider a longitudinal regression analysis using mixed effect models. These models are very similar to the linear regression models from before; the difference being that we include “random effects” in these models to tie together observations from the same infant. We include a random intercept and a random slope for time as the sole random effects in all of the models.
We provide the following output: regression parameter estimates, predicted trajectories for brain volume across time for each subject (colored by their diagnosis), and predicted trajectories for brain volume across Proband SCQ score for each subject at each time point (again colored by diagnosis).
To model time in the fixed effects (along with the aforementioned random intercept, slope) we include the following:
and in the supplemental analyses we include the following as well:
with the rest of the fixed effects being those found in the linear regression models with confounding. The use of the second and third interaction terms above allows the slope between proband score and brain measure to differ over time (become stronger/weaker as the infant ages), and for this differs to depend on diagnosis.
We also consider a spline modeling, with separate splines for each diagnostic group. The knots are placed at visit points (6 months, 12 months, 24 months). We only consider spline models for the “macro” scale brain measures (EACSF, TCV, TSA) as we see that compared to the linear mixed models, the splines do not significant new information. This was determined by a asymptotic likelihood ratio test with the linear mixed model as the null model (as the linear and spline models are nested models), using the restricted log likelihoods for each model. As before, the random effects consist of a random intercept and a random slope for age.
First, we create a table of counts of available imaging data by time point, diagnosis. This can be done be counting the number of non-missing values of the AgeMRI variable.
##
## Welch Two Sample t-test
##
## data: SCQ_Pro_Score by Pro_SCQgrp
## t = -9.958, df = 31.638, p-value = 2.843e-11
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -10.923322 -7.212016
## sample estimates:
## mean in group low mean in group high
## 15.80952 24.87719
##
## Welch Two Sample t-test
##
## data: ADOS_SevScore by Pro_SCQgrp
## t = 1.5238, df = 31.513, p-value = 0.1375
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.2424826 1.6793247
## sample estimates:
## mean in group low mean in group high
## 6.350000 5.631579
Re-fit the mixed effects models in the main analyses with the following additions to the main effects:
The use of these interaction terms above allows the slope between proband score and brain measure to differ over time (become stronger/weaker as the infant ages), and for this differs to depend on diagnosis.
We are now going to assess if infant cortical surface area is a mediator between the effect of proband SCQ score on sibling diagnosis, at 12 months of age for the sibling. Given the outcome is binary diagnosis (ASD vs Negative), we use a logistic regression model.
The following models are used to assess the mediation of surface area (TSA) at 12 months:
\(TSA=\beta_0+\beta_1SCQProband+\beta_zZ+\epsilon\)
\(\mbox{logit}(p_{ASD|TSA,SCQ,Z})=\beta_0+\beta_1TSA+\beta_2SCQProband+\beta_zZ\)
where \(p_{ASD|TSA,SCQ,Z}=\Pr(Diagnosis=ASD|TSA,SCQ,Z)\), that is the probability of an ASD diagnosis for the infant given their surface area at 12 months, sibling SCQ total score, and potential confounders, where \(Z\) is shorthand for the set of potential confounders (same as were used above in the mixed model analyses). These models are used to estimate the usual direct, indirect, and total effects based on the models’ regression parameter estimates. To avoid distributional assumptions about the distribution of these estimators, we use the nonparametric bootstrap (sample data with replacement and compute estimates) with 1000 bootstrap resamples to compute 95% CIs using the 2.5th and 97.5th percentiles as the CI endpoints.
The association between SCQ and diagnosis are thus decomposed into
Total effect: assocation between SCQ and diagnosis, without any controlling
Direct effect: association between SCQ and diagnosis, controlling for TSA
Indirect effect: Direct - Total, how SCQ associates with diagnosis through it’s association with TSA
##
## Causal Mediation Analysis
##
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME (control) -0.000191 -0.001974 0.00 0.802
## ACME (treated) -0.000210 -0.002191 0.00 0.802
## ADE (control) 0.017285 0.004358 0.03 0.024 *
## ADE (treated) 0.017266 0.004382 0.03 0.024 *
## Total Effect 0.017075 0.004127 0.03 0.020 *
## Prop. Mediated (control) -0.011170 -0.150381 0.09 0.814
## Prop. Mediated (treated) -0.012300 -0.165212 0.09 0.814
## ACME (average) -0.000200 -0.002095 0.00 0.802
## ADE (average) 0.017276 0.004370 0.03 0.024 *
## Prop. Mediated (average) -0.011735 -0.155697 0.09 0.814
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 234
##
##
## Simulations: 1000
##
## Call:
## glm(formula = RiskGroup ~ SCQ_Pro_Score + TSA + Site + AgeMRI +
## Cand_Sex, family = binomial(link = "logit"), data = summ_stats_data_long_12m)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.1654 -0.6481 -0.4838 -0.2891 2.7163
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.082e+01 4.459e+00 -2.428 0.0152 *
## SCQ_Pro_Score 7.587e-02 3.296e-02 2.302 0.0214 *
## TSA 5.461e-05 4.110e-05 1.329 0.1840
## SiteSEA 1.858e-02 5.533e-01 0.034 0.9732
## SiteSTL -1.821e-01 5.365e-01 -0.339 0.7344
## SiteUNC -7.679e-04 5.639e-01 -0.001 0.9989
## AgeMRI 3.294e-01 2.867e-01 1.149 0.2505
## Cand_SexFemale -1.052e+00 5.129e-01 -2.052 0.0402 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 210.86 on 233 degrees of freedom
## Residual deviance: 189.66 on 226 degrees of freedom
## (150 observations deleted due to missingness)
## AIC: 205.66
##
## Number of Fisher Scoring iterations: 5